请解释一下C语句"char a[10],??p;p=a=“china”"的含义.

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:17:58
问题:下列说明不正确的是:

(A)char a[10]=“china” (B)char a[10],??p=a;p=“china” (C)char ??p;p=“china”(D)char a[10],??p;p=a=“china”;

char a[10], *p;
p = a = "china";
是错的赋值!~
原因:
char *p;
p = "china";
这里的p是在静态区分配的内存,也就是说p是指向字符常量的指针。
而在p = a = "china";中,"="运算符是从右向左结合的,所以是将"china"的首地址赋值给a,而a是char型数组的首地址,这是把字符常量的地址赋值给字符变量,所以错误!~

好像是先定义一个10位符号的字符数组a,设置一个p值,,将a的值赋值给p?

首先,里面的连着的问号应该是*,不正确的是D,char a[10],a是常量,不是变量,不能赋值,所以把china赋给a是不对的.

没理解 写错了的吧

??是什么啊